package start.test.ec;

//测试类
public class Main {

    public static void main(String[] args){
        //思路
        //因为涉及到在一个实体的基础上增强功能，首先想到整体用到装饰器模式。根据此时场景判断商品具备通用属性，所以使用抽象类而不是接口
        // 其中两种基本商品(普通和生鲜二手)不需要装饰，因为他们的税金不是在其他商品税金上叠加
        // 后续衍生的商品税金计算可由两种基本商品装饰得到

        //普通商品
        Commodity common=new Common(100);
        System.out.println("普通商品税金:"+common.taxes());
        //生鲜 & 二手
        Commodity fresh=new Fresh(100);
        System.out.println("二手商品税金:"+fresh.taxes());
        //奢侈品 由普通商品装饰得到
        Commodity luxury=new Luxury(common);
        System.out.println("奢侈品税金:"+luxury.taxes());

        //进口商品 可由普通商品或者二手商品等等装饰得到
        Commodity importer1=new Importer(common);
        System.out.println("进口普通商品税金:"+importer1.taxes());
        Commodity importer2=new Importer(luxury);
        System.out.println("进口二手税金:"+importer2.taxes());
    }
}
